home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / midi / midilb20.lha / basic / change next >
Text File  |  1988-04-07  |  980b  |  41 lines

  1. '**** CHANGE - sends program changes via MIDI
  2.  
  3. 'Assumes exec.bmap and midi.bmap in current directory
  4. LIBRARY "exec.library"
  5. LIBRARY "midi.library"
  6.  
  7. DECLARE FUNCTION AllocMem&() LIBRARY
  8. memf.public& = 1
  9. memf.clear& = 65536&
  10.  
  11. DECLARE FUNCTION CreateMSource&() LIBRARY
  12. DECLARE FUNCTION MRouteSource&() LIBRARY
  13. DestName$="MidiOut"+CHR$(0)
  14.  
  15. RouteInfo&=AllocMem&(14&,memf.public&+memf.clear&)
  16. POKEW RouteInfo&  ,-1
  17. POKEW RouteInfo&+2,-1
  18.  
  19. Main:
  20. INPUT "Program to change to? ",Program%
  21. IF Program%<1 THEN CloseDown
  22. buf$=CHR$(&HC0)+CHR$(Program%-1)
  23.  
  24. Source&=CreateMSource&(0&,0&)
  25. IF Source&=0 THEN PRINT"Can't create Source":GOTO CloseDown
  26.  
  27. Route&=MRouteSource&(Source&,SADD(DestName$),RouteInfo&)
  28. IF Route&=0 THEN PRINT"Can't create Route":GOTO CloseDown
  29.  
  30. CALL PutMidiMsg(Source&,SADD(buf$))
  31.  
  32. CloseDown:
  33. IF Route&<>0 THEN CALL DeleteMRoute(Route&)
  34. IF Source&<>0 THEN CALL DeleteMSource(Source&)
  35. CALL FreeMem(RouteInfo&,14&)
  36. LIBRARY CLOSE
  37.  
  38. PRINT"Program changed to preset # "Program%"!"
  39.  
  40.  
  41.